package com.matrix.order.infrastructure.payment;

import java.math.BigDecimal;

/**
 * @author 有点甜
 * @since 2025/8/2
 */
public interface PaymentService {

    /**
     * 创建Native支付预支付订单
     *
     * @param tradeNo     商户订单号
     * @param amount      支付金额
     * @param description 描述
     * @return 支付二维码链接
     */
    String createNativePayment(String tradeNo, BigDecimal amount, String description);

    /**
     * 发起退款
     *
     * @param tradeNo 商户订单号
     * @param amount  退款金额
     * @param reason  退款原因
     */
    void refund(String tradeNo, BigDecimal amount, String reason);

    /**
     * 关闭微信支付端的订单
     *
     * @param tradeNo 商户订单号
     */
    void closeOrder(String tradeNo);
}
